/*Demande un numero de port aleatoire au systeme et affiche
  numero obtenu. Ici pour sock-stream
*/

using namespace std;
//#include <string.h>//pour memcpy au moins
//#include <stdio.h>//perror
//#include <sys/types.h>
//#include <iostream>
//#include <netinet/in.h>
//#include <netdb.h>
//#include <arpa/inet.h>
//#include <sys/socket.h>
//#include <fstream>
#include "sock.h"
#include "sockdist.h"

main(int argc, char*argv[]){

  
  /* une BR locale avec un port par d'efaut*/
  Sock maBr(SOCK_STREAM,short(0),0);
  int descmaBr;
   if (maBr.good()) descmaBr=maBr.getsDesc();//on recupere le descripteur
  else {
    cout<<"pb BR locale"<<endl;
    exit(1);
  }
  /* Testons quel numero a ete attribue ? */
  /* Faudrait faire un accesseur */
  sockaddr_in mioBr;
  //attention ci-dessous : verifier que sur les machines info-ufr 
  //si c'est un socklen_t ou un int
  socklen_t lgmio=sizeof(struct sockaddr_in);
  getsockname(descmaBr, (struct sockaddr *)(&mioBr), &lgmio);
  cout <<"numero de port obtenu :"<< ntohs(mioBr.sin_port)<<endl;

}




